跳到主要内容 跳到补充内容

concat 函数示例

CONCAT() 函数不应与 CONCATENATE 脚本关键字混淆。

在最简形式中,Concat() 用于将字符串与值/词/选择项组合为一个字符串。但是,它可以利用多种方式帮助你解决各种问题。以下表列出所有示例:

Example string table data
示例字符串表格数据
Table MyColumn Date Value
Data JKL 01/01/2012 11
Data1 WVX 01/02/2012 13
Data GHI 01/03/2012 13
Data ABC 01/04/2012 15
Data1 STU 01/05/2012 18
Data1 PQR 01/06/2012 10
Data1 MNO 01/07/2012 25
Data DEF 01/08/2012 11

简单字符串串联

如前所述,concat函数允许你将列表所有值串成一串。这些值可以是硬代码或选择项/数据驱动值。

=CONCAT(MyColumn,',')

=CONCAT(DISTINCT MyColumn,',')

这一简单concat 语句可以将 MyColumn 栏中的所有可能值串成一串。你不妨增加 DISTINCT 关键词。可以确保字符串中的每个值只显示一次:

ABC,DEF,GHI,JKL,MNO,PQR,STU,VWX

使用简单concat时,你可以选择函数的排序权重,根据你的选择栏排序字符串的值。在以下示例中,增加日期栏以排序数值。

=CONCAT(MyColumn, ',', Date)

结果:JKL,VWX,GHI,ABC,STU,PQR,MNO,DEF

Expression/Set 语句内的Concat()

示例: 将多个动态值传递至设置分析表达式中

当你想将数值的动态选择传递至 SET 语句时,是有机会的。字符串需要添加单引号,即 CONCAT() 函数返回,如'JKL','VWX'。但你不能保留他们本身的单引号,因为他们会被解释为当评估Concat时而不是评估表达式时。使用 Chr()函数来代替:

=CONCAT(Chr(39)&MyColumn&Chr(39),',')

之后可以传递concat语句到表达式中:

=Sum({<MyColumn={$(=CONCAT(Chr(39)&MyColumn&Chr(39),','))}>} Value)

大多数情况下,出现数据岛的地方就可以使用这项技术。能够让你传递数值到表达式中而不影响数据模型的任何部分,因为数据岛表格未加入进去。

脚本中的Concat()

Concat可以用于脚本中,将多行转换成单列的值,正如任何其它的聚合一样。

务必要较早使用数据,脚本结果 CONCAT如下所示:

ConcatExample:
Load Table,
Concat(MyColumn,',') as CombinedData
Resident Temp
Group By Table;

以下为脚本函数的结果:

表格形式示例输出
Table CombinedData
Data ABC,DEF,GHI,JKL
Data1 MNO,PQR,STU,WVX

使用 Rank() 影响Concat()

当你开始使用与concat()相联的其他函数时,你可以开始完成更好的结果。在本例中,已使用Rank()抓取前三项(基于数值)并将其串联起来。

=CONCAT(IF(aggr(Rank(sum(Value)),MyColumn)<=3,MyColumn),',')

结果:ABC,MNO,STU

本页面有帮助吗?

如果您发现此页面或其内容有任何问题 – 打字错误、遗漏步骤或技术错误 – 请告诉我们如何改进!

加入分析现代化计划

Remove banner from view

使用分析现代化计划实现现代化,同时不损害您宝贵的 QlikView 应用程序。 单击此处 了解更多信息或联系: ampquestions@qlik.com